package com.mark.web.data.service;

import com.mark.common.ServerResponse;
import com.mark.web.data.entity.vo.CategoryVo;

import java.util.List;

/**
 * @Description: 商品种类Service层接口设计
 * @Author: Mark
 * @CreateDate: 2018/8/14.
 * @Version: 2.0
 * @Copyright : 豆浆油条个人非正式工作室
 */
public interface ICategoryService {

    /* *****************************************  一下为门户-调用接口  ***************************************** */
    /**
     * 获取categoryId下的商品子种类，当<code>categoryId<code/>的值为0时，取出的是一级的商品种类
     * @param categoryId 商品种类id
     * @return ServerResponse<List<CategoryVo>>
     */
    List<CategoryVo>  getChildrenParallelCategory(Integer categoryId);

    /* *****************************************  一下为后台管理员-调用接口  ***************************************** */
    /**
     * 添加商品种类
     * @param categoryName 种类名称
     * @param parentId 该种类所属的父级id
     * @param imageAddress 该种类的图片地址
     */
    void addCategory(String categoryName, Integer parentId, String imageAddress);

    /**
     * 更新商品种类名称
     * @param categoryId 商品种类id
     * @param categoryNewName 新的商品种类名称
     */
    void updateCategoryName(Integer categoryId, String categoryNewName);

    /**
     * 递归查询本节点的id及孩子节点的id
     * @param categoryId 种类id
     * @return 种类id列表
     */
    List<Integer> selectCategoryAndChildrenById(Integer categoryId);

  }
